package com.blog.dao;

import java.util.List;

import com.blog.BO.PostBO;
import com.blog.entity.Post;

/**
 * @author 蒲鑫
 * @function 功能：所有帖子表的相关操作
 * @date 2023年6月1日
 */
public interface AllPostDao {
	/**
	 * @author 蒲鑫
	 * @function 功能：查询所有符合条件的帖子
	 * @parameter 传入参数：查询条件postBO（所属板块，用户id等），第几页pageNum，每一页大小pageSize
	 * @return 返回值：返回所有符合条件的List<Post>
	 * @date 2023年5月31日
	 */
	public List<Post> selectPost(PostBO postBO,int pageNum,int pageSize);

	/**
	 * @author 蒲鑫
	 * @function 功能：查询帖子表的全部条数
	 * @parameter 传入参数：
	 * @return 返回值：返回帖子表全部条数
	 * @date 2023年5月31日
	 */
	public int selectPostNum();
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过帖子id查找此帖子全部信息
	 * @parameter 传入参数：帖子postId
	 * @return 返回值：返回通过postId查询到的帖子/如果没有返回null
	 * @date 2023年6月1日
	 */
	public Post selectPostByPostId(int postId);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过帖子id删除帖子
	 * @return 返回值：返回影响行数，1为成功
	 * @date 2023年5月31日
	 */
	public int deletePostByPostId(int postId);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：添加帖子
	 * @parameter 传入参数：帖子的数据
	 * @return 返回值：返回影响行数，1为成功
	 * @date 2023年5月31日
	 */
	public int insertPost(Post post);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过传入的帖子更新所属id帖子信息
	 * @parameter 传入参数：修改后的帖子数据
	 * @return 返回值：返回影响行数，1为成功
	 * @date 2023年5月31日
	 */
	public int updatePost(Post post);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过所属用户id查询该用户所有的帖子
	 * @parameter 传入参数：用户id
	 * @return 返回值：所有属于此用户的帖子
	 * @date 2023年6月1日
	 */
	public List<Post> selectAllPostByPostUserId(int postUserId, int pageNum, int pageSize);
}
